import request from '@/utils/request'

/**
 * 反义词相关API
 */
export default {
  /**
   * 获取反义词列表
   * @param {Object} params - 查询参数
   * @returns {Promise}
   */
  getAntonyms(params) {
    return request({
      url: '/antonyms',
      method: 'get',
      params
    })
  },

  /**
   * 获取反义词详情
   * @param {Number|String} id - 反义词组ID
   * @returns {Promise}
   */
  getAntonym(id) {
    return request({
      url: `/antonyms/${id}`,
      method: 'get'
    })
  },

  /**
   * 创建反义词
   * @param {Object} data - 反义词数据
   * @returns {Promise}
   */
  createAntonym(data) {
    return request({
      url: '/antonyms',
      method: 'post',
      data
    })
  },

  /**
   * 更新反义词
   * @param {Number|String} id - 反义词组ID
   * @param {Object} data - 反义词数据
   * @returns {Promise}
   */
  updateAntonym(id, data) {
    return request({
      url: `/antonyms/${id}`,
      method: 'put',
      data
    })
  },

  /**
   * 删除反义词
   * @param {Number|String} id - 反义词组ID
   * @returns {Promise}
   */
  deleteAntonym(id) {
    return request({
      url: `/antonyms/${id}`,
      method: 'delete'
    })
  },

  /**
   * 获取单词的反义词
   * @param {Number|String} wordId - 单词ID
   * @returns {Promise}
   */
  getWordAntonyms(wordId) {
    return request({
      url: `/words/${wordId}/antonyms`,
      method: 'get'
    })
  },

  /**
   * 添加单词反义词关系
   * @param {Number|String} wordId - 单词ID
   * @param {Object} data - 关系数据
   * @returns {Promise}
   */
  addWordAntonym(wordId, data) {
    return request({
      url: `/words/${wordId}/antonyms`,
      method: 'post',
      data
    })
  },

  /**
   * 删除单词反义词关系
   * @param {Number|String} wordId - 单词ID
   * @param {Number|String} antonymId - 反义词ID
   * @returns {Promise}
   */
  removeWordAntonym(wordId, antonymId) {
    return request({
      url: `/words/${wordId}/antonyms/${antonymId}`,
      method: 'delete'
    })
  },

  /**
   * 搜索反义词
   * @param {Object} params - 搜索参数
   * @returns {Promise}
   */
  searchAntonyms(params) {
    return request({
      url: '/antonyms/search',
      method: 'get',
      params
    })
  }
} 